
IRDIR=irr

a.exe: main.o y.tab.o lex.yy.o errormsg.o util.o \
	absyn.o symbol.o table.o myutil.o parse.o prabsyn.o \
	types.o env.o \
	temp.o tree.o printtree.o frame.o translate.o semant.o
	cc -g main.o y.tab.o lex.yy.o errormsg.o util.o \
	absyn.o symbol.o table.o myutil.o parse.o prabsyn.o \
	types.o env.o \
	temp.o tree.o printtree.o frame.o translate.o semant.o

main.o: main.c
	cc -g -c main.c

#parsetest.o: parsetest.c errormsg.h util.h
#	cc -g -c parsetest.c

y.tab.o: y.tab.c
	cc -g -c y.tab.c

y.tab.c: tiger.grm
	bison -y -dv tiger.grm

y.tab.h: y.tab.c
	echo "y.tab.h was created at the same time as y.tab.c"

errormsg.o: errormsg.c errormsg.h util.h
	cc -g -c errormsg.c

lex.yy.c: tiger.lex
	flex tiger.lex

lex.yy.o: lex.yy.c y.tab.h errormsg.h util.h
	cc -g -c lex.yy.c

util.o: util.c util.h
	cc -g -c util.c

myutil.o: myutil.c myutil.h
	cc -g -c myutil.c

absyn.o: absyn.c absyn.h
	cc -g -c absyn.c

symbol.o: symbol.c symbol.h
	cc -g -c symbol.c

table.o: table.c table.h
	cc -g -c table.c

parse.o: parse.c parse.h
	cc -g -c parse.c

prabsyn.o: prabsyn.c prabsyn.h
	cc -g -c prabsyn.c

types.o: types.c types.h
	cc -g -c types.c

env.o: env.c env.h
	cc -g -c env.c

temp.o: $(IRDIR)/temp.c $(IRDIR)/temp.h
	cc -g -c $(IRDIR)/temp.c

tree.o: $(IRDIR)/tree.c $(IRDIR)/tree.h
	cc -g -c $(IRDIR)/tree.c

printtree.o: $(IRDIR)/printtree.c $(IRDIR)/printtree.h
	cc -g -c $(IRDIR)/printtree.c

frame.o: $(IRDIR)/frame.c $(IRDIR)/frame.h
	cc -g -c $(IRDIR)/frame.c

translate.o: $(IRDIR)/translate.c $(IRDIR)/translate.h
	cc -g -c $(IRDIR)/translate.c


semant.o: semant.c semant.h
	cc -g -c semant.c



clean:
	rm -f a.out util.o parsetest.o lex.yy.o errormsg.o \
	y.tab.c y.tab.h y.tab.o absyn.o symbol.o table.o \
	types.o env.o semant.o \
	temp.o tree.o printtree.o frame.o translate.o\
	main.o myutil.o parse.o prabsyn.o printtree.o
